use std::os::raw::{c_char, c_int, c_void};
use std::ptr;
const _GLIBCXX_STDLIB_H: i32 = 1;
const _GLIBCXX_CXX_CONFIG_H: i32 = 1;
const _GLIBCXX_RELEASE: i32 = 9;
const __GLIBCXX__: i32 = 20210601;
const _GLIBCXX_HAVE_ATTRIBUTE_VISIBILITY: i32 = 1;
const _GLIBCXX_USE_DEPRECATED: i32 = 1;
const _GLIBCXX_EXTERN_TEMPLATE: i32 = 1;
const _GLIBCXX_USE_DUAL_ABI: i32 = 1;
const _GLIBCXX_USE_CXX11_ABI: i32 = 1;
const _GLIBCXX_INLINE_VERSION: i32 = 0;
const _GLIBCXX_OS_DEFINES: i32 = 1;
const __NO_CTYPE: i32 = 1;
const _GLIBCXX_NO_OBSOLETE_ISINF_ISNAN_DYNAMIC: i32 = 1;
const _GLIBCXX_CPU_DEFINES: i32 = 1;
const _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP: i32 = 1;
const _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE: i32 = 1;
const _GLIBCXX_HAVE_BUILTIN_LAUNDER: i32 = 1;
const _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED: i32 = 1;
const _GLIBCXX_HAVE_ACOSF: i32 = 1;
const _GLIBCXX_HAVE_ACOSL: i32 = 1;
const _GLIBCXX_HAVE_ALIGNED_ALLOC: i32 = 1;
const _GLIBCXX_HAVE_ARPA_INET_H: i32 = 1;
const _GLIBCXX_HAVE_ASINF: i32 = 1;
const _GLIBCXX_HAVE_ASINL: i32 = 1;
const _GLIBCXX_HAVE_AS_SYMVER_DIRECTIVE: i32 = 1;
const _GLIBCXX_HAVE_ATAN2F: i32 = 1;
const _GLIBCXX_HAVE_ATAN2L: i32 = 1;
const _GLIBCXX_HAVE_ATANF: i32 = 1;
const _GLIBCXX_HAVE_ATANL: i32 = 1;
const _GLIBCXX_HAVE_ATOMIC_LOCK_POLICY: i32 = 1;
const _GLIBCXX_HAVE_AT_QUICK_EXIT: i32 = 1;
const _GLIBCXX_HAVE_CEILF: i32 = 1;
const _GLIBCXX_HAVE_CEILL: i32 = 1;
const _GLIBCXX_HAVE_COMPLEX_H: i32 = 1;
const _GLIBCXX_HAVE_COSF: i32 = 1;
const _GLIBCXX_HAVE_COSHF: i32 = 1;
const _GLIBCXX_HAVE_COSHL: i32 = 1;
const _GLIBCXX_HAVE_COSL: i32 = 1;
const _GLIBCXX_HAVE_DIRENT_H: i32 = 1;
const _GLIBCXX_HAVE_DLFCN_H: i32 = 1;
const _GLIBCXX_HAVE_EBADMSG: i32 = 1;
const _GLIBCXX_HAVE_ECANCELED: i32 = 1;
const _GLIBCXX_HAVE_ECHILD: i32 = 1;
const _GLIBCXX_HAVE_EIDRM: i32 = 1;
const _GLIBCXX_HAVE_ENDIAN_H: i32 = 1;
const _GLIBCXX_HAVE_ENODATA: i32 = 1;
const _GLIBCXX_HAVE_ENOLINK: i32 = 1;
const _GLIBCXX_HAVE_ENOSPC: i32 = 1;
const _GLIBCXX_HAVE_ENOSR: i32 = 1;
const _GLIBCXX_HAVE_ENOSTR: i32 = 1;
const _GLIBCXX_HAVE_ENOTRECOVERABLE: i32 = 1;
const _GLIBCXX_HAVE_ENOTSUP: i32 = 1;
const _GLIBCXX_HAVE_EOVERFLOW: i32 = 1;
const _GLIBCXX_HAVE_EOWNERDEAD: i32 = 1;
const _GLIBCXX_HAVE_EPERM: i32 = 1;
const _GLIBCXX_HAVE_EPROTO: i32 = 1;
const _GLIBCXX_HAVE_ETIME: i32 = 1;
const _GLIBCXX_HAVE_ETIMEDOUT: i32 = 1;
const _GLIBCXX_HAVE_ETXTBSY: i32 = 1;
const _GLIBCXX_HAVE_EWOULDBLOCK: i32 = 1;
const _GLIBCXX_HAVE_EXCEPTION_PTR_SINCE_GCC46: i32 = 1;
const _GLIBCXX_HAVE_EXECINFO_H: i32 = 1;
const _GLIBCXX_HAVE_EXPF: i32 = 1;
const _GLIBCXX_HAVE_EXPL: i32 = 1;
const _GLIBCXX_HAVE_FABSF: i32 = 1;
const _GLIBCXX_HAVE_FABSL: i32 = 1;
const _GLIBCXX_HAVE_FCNTL_H: i32 = 1;
const _GLIBCXX_HAVE_FENV_H: i32 = 1;
const _GLIBCXX_HAVE_FINITE: i32 = 1;
const _GLIBCXX_HAVE_FINITEF: i32 = 1;
const _GLIBCXX_HAVE_FINITEL: i32 = 1;
const _GLIBCXX_HAVE_FLOAT_H: i32 = 1;
const _GLIBCXX_HAVE_FLOORF: i32 = 1;
const _GLIBCXX_HAVE_FLOORL: i32 = 1;
const _GLIBCXX_HAVE_FMODF: i32 = 1;
const _GLIBCXX_HAVE_FMODL: i32 = 1;
const _GLIBCXX_HAVE_FREXPF: i32 = 1;
const _GLIBCXX_HAVE_FREXPL: i32 = 1;
const _GLIBCXX_HAVE_GETIPINFO: i32 = 1;
const _GLIBCXX_HAVE_GETS: i32 = 1;
const _GLIBCXX_HAVE_HYPOT: i32 = 1;
const _GLIBCXX_HAVE_HYPOTF: i32 = 1;
const _GLIBCXX_HAVE_HYPOTL: i32 = 1;
const _GLIBCXX_HAVE_ICONV: i32 = 1;
const _GLIBCXX_HAVE_INT64_T: i32 = 1;
const _GLIBCXX_HAVE_INT64_T_LONG: i32 = 1;
const _GLIBCXX_HAVE_INTTYPES_H: i32 = 1;
const _GLIBCXX_HAVE_ISINFF: i32 = 1;
const _GLIBCXX_HAVE_ISINFL: i32 = 1;
const _GLIBCXX_HAVE_ISNANF: i32 = 1;
const _GLIBCXX_HAVE_ISNANL: i32 = 1;
const _GLIBCXX_HAVE_ISWBLANK: i32 = 1;
const _GLIBCXX_HAVE_LC_MESSAGES: i32 = 1;
const _GLIBCXX_HAVE_LDEXPF: i32 = 1;
const _GLIBCXX_HAVE_LDEXPL: i32 = 1;
const _GLIBCXX_HAVE_LIBINTL_H: i32 = 1;
const _GLIBCXX_HAVE_LIMIT_AS: i32 = 1;
const _GLIBCXX_HAVE_LIMIT_DATA: i32 = 1;
const _GLIBCXX_HAVE_LIMIT_FSIZE: i32 = 1;
const _GLIBCXX_HAVE_LIMIT_RSS: i32 = 1;
const _GLIBCXX_HAVE_LIMIT_VMEM: i32 = 0;
const _GLIBCXX_HAVE_LINK: i32 = 1;
const _GLIBCXX_HAVE_LINUX_FUTEX: i32 = 1;
const _GLIBCXX_HAVE_LINUX_RANDOM_H: i32 = 1;
const _GLIBCXX_HAVE_LINUX_TYPES_H: i32 = 1;
const _GLIBCXX_HAVE_LOCALE_H: i32 = 1;
const _GLIBCXX_HAVE_LOG10F: i32 = 1;
const _GLIBCXX_HAVE_LOG10L: i32 = 1;
const _GLIBCXX_HAVE_LOGF: i32 = 1;
const _GLIBCXX_HAVE_LOGL: i32 = 1;
const _GLIBCXX_HAVE_MBSTATE_T: i32 = 1;
const _GLIBCXX_HAVE_MEMALIGN: i32 = 1;
const _GLIBCXX_HAVE_MEMORY_H: i32 = 1;
const _GLIBCXX_HAVE_MODF: i32 = 1;
const _GLIBCXX_HAVE_MODFF: i32 = 1;
const _GLIBCXX_HAVE_MODFL: i32 = 1;
const _GLIBCXX_HAVE_NETDB_H: i32 = 1;
const _GLIBCXX_HAVE_NETINET_IN_H: i32 = 1;
const _GLIBCXX_HAVE_NETINET_TCP_H: i32 = 1;
const _GLIBCXX_HAVE_POLL: i32 = 1;
const _GLIBCXX_HAVE_POLL_H: i32 = 1;
const _GLIBCXX_HAVE_POSIX_MEMALIGN: i32 = 1;
const _GLIBCXX_HAVE_POWF: i32 = 1;
const _GLIBCXX_HAVE_POWL: i32 = 1;
const _GLIBCXX_HAVE_QUICK_EXIT: i32 = 1;
const _GLIBCXX_HAVE_READLINK: i32 = 1;
const _GLIBCXX_HAVE_SETENV: i32 = 1;
const _GLIBCXX_HAVE_SINCOS: i32 = 1;
const _GLIBCXX_HAVE_SINCOSF: i32 = 1;
const _GLIBCXX_HAVE_SINCOSL: i32 = 1;
const _GLIBCXX_HAVE_SINF: i32 = 1;
const _GLIBCXX_HAVE_SINHF: i32 = 1;
const _GLIBCXX_HAVE_SINHL: i32 = 1;
const _GLIBCXX_HAVE_SINL: i32 = 1;
const _GLIBCXX_HAVE_SOCKATMARK: i32 = 1;
const _GLIBCXX_HAVE_SQRTF: i32 = 1;
const _GLIBCXX_HAVE_SQRTL: i32 = 1;
const _GLIBCXX_HAVE_STDALIGN_H: i32 = 1;
const _GLIBCXX_HAVE_STDBOOL_H: i32 = 1;
const _GLIBCXX_HAVE_STDINT_H: i32 = 1;
const _GLIBCXX_HAVE_STDLIB_H: i32 = 1;
const _GLIBCXX_HAVE_STRERROR_L: i32 = 1;
const _GLIBCXX_HAVE_STRERROR_R: i32 = 1;
const _GLIBCXX_HAVE_STRINGS_H: i32 = 1;
const _GLIBCXX_HAVE_STRING_H: i32 = 1;
const _GLIBCXX_HAVE_STRTOF: i32 = 1;
const _GLIBCXX_HAVE_STRTOLD: i32 = 1;
const _GLIBCXX_HAVE_STRUCT_DIRENT_D_TYPE: i32 = 1;
const _GLIBCXX_HAVE_STRXFRM_L: i32 = 1;
const _GLIBCXX_HAVE_SYMLINK: i32 = 1;
const _GLIBCXX_HAVE_SYMVER_SYMBOL_RENAMING_RUNTIME_SUPPORT: i32 = 1;
const _GLIBCXX_HAVE_SYS_IOCTL_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_IPC_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_PARAM_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_RESOURCE_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_SDT_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_SEM_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_SOCKET_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_STATVFS_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_STAT_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_SYSINFO_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_TIME_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_TYPES_H: i32 = 1;
const _GLIBCXX_HAVE_SYS_UIO_H: i32 = 1;
const _GLIBCXX_HAVE_S_ISREG: i32 = 1;
const _GLIBCXX_HAVE_TANF: i32 = 1;
const _GLIBCXX_HAVE_TANHF: i32 = 1;
const _GLIBCXX_HAVE_TANHL: i32 = 1;
const _GLIBCXX_HAVE_TANL: i32 = 1;
const _GLIBCXX_HAVE_TGMATH_H: i32 = 1;
const _GLIBCXX_HAVE_TIMESPEC_GET: i32 = 1;
const _GLIBCXX_HAVE_TLS: i32 = 1;
const _GLIBCXX_HAVE_TRUNCATE: i32 = 1;
const _GLIBCXX_HAVE_UCHAR_H: i32 = 1;
const _GLIBCXX_HAVE_UNISTD_H: i32 = 1;
const _GLIBCXX_HAVE_UTIME_H: i32 = 1;
const _GLIBCXX_HAVE_VFWSCANF: i32 = 1;
const _GLIBCXX_HAVE_VSWSCANF: i32 = 1;
const _GLIBCXX_HAVE_VWSCANF: i32 = 1;
const _GLIBCXX_HAVE_WCHAR_H: i32 = 1;
const _GLIBCXX_HAVE_WCSTOF: i32 = 1;
const _GLIBCXX_HAVE_WCTYPE_H: i32 = 1;
const _GLIBCXX_HAVE_WRITEV: i32 = 1;
const _GLIBCXX_HAVE___CXA_THREAD_ATEXIT_IMPL: i32 = 1;
const LT_OBJDIR: &str = ".libs/";
const _GLIBCXX_PACKAGE_BUGREPORT: &str = "";
const _GLIBCXX_PACKAGE_NAME: &str = "package-unused";
const _GLIBCXX_PACKAGE_STRING: &str = "package-unused version-unused";
const _GLIBCXX_PACKAGE_TARNAME: &str = "libstdc++";
const _GLIBCXX_PACKAGE_URL: &str = "";
const _GLIBCXX_PACKAGE__GLIBCXX_VERSION: &str = "version-unused";
const STDC_HEADERS: i32 = 1;
const _GLIBCXX_DARWIN_USE_64_BIT_INODE: i32 = 1;
const _GLIBCXX11_USE_C99_COMPLEX: i32 = 1;
const _GLIBCXX11_USE_C99_MATH: i32 = 1;
const _GLIBCXX11_USE_C99_STDIO: i32 = 1;
const _GLIBCXX11_USE_C99_STDLIB: i32 = 1;
const _GLIBCXX11_USE_C99_WCHAR: i32 = 1;
const _GLIBCXX98_USE_C99_COMPLEX: i32 = 1;
const _GLIBCXX98_USE_C99_MATH: i32 = 1;
const _GLIBCXX98_USE_C99_STDIO: i32 = 1;
const _GLIBCXX98_USE_C99_STDLIB: i32 = 1;
const _GLIBCXX98_USE_C99_WCHAR: i32 = 1;
const _GLIBCXX_ATOMIC_BUILTINS: i32 = 1;
const _GLIBCXX_FULLY_DYNAMIC_STRING: i32 = 0;
const _GLIBCXX_HAS_GTHREADS: i32 = 1;
const _GLIBCXX_HOSTED: i32 = 1;
const _GLIBCXX_MANGLE_SIZE_T: &str = "m";
const _GLIBCXX_RES_LIMITS: i32 = 1;
const _GLIBCXX_STDIO_EOF: i32 = -1;
const _GLIBCXX_STDIO_SEEK_CUR: i32 = 1;
const _GLIBCXX_STDIO_SEEK_END: i32 = 2;
const _GLIBCXX_SYMVER: i32 = 1;
const _GLIBCXX_SYMVER_GNU: i32 = 1;
const _GLIBCXX_USE_C11_UCHAR_CXX11: i32 = 1;
const _GLIBCXX_USE_C99: i32 = 1;
const _GLIBCXX_USE_C99_COMPLEX_TR1: i32 = 1;
const _GLIBCXX_USE_C99_CTYPE_TR1: i32 = 1;
const _GLIBCXX_USE_C99_FENV_TR1: i32 = 1;
const _GLIBCXX_USE_C99_INTTYPES_TR1: i32 = 1;
const _GLIBCXX_USE_C99_INTTYPES_WCHAR_T_TR1: i32 = 1;
const _GLIBCXX_USE_C99_MATH_TR1: i32 = 1;
const _GLIBCXX_USE_C99_STDINT_TR1: i32 = 1;
const _GLIBCXX_USE_CLOCK_MONOTONIC: i32 = 1;
const _GLIBCXX_USE_CLOCK_REALTIME: i32 = 1;
const _GLIBCXX_USE_DECIMAL_FLOAT: i32 = 1;
const _GLIBCXX_USE_DEV_RANDOM: i32 = 1;
const _GLIBCXX_USE_FCHMOD: i32 = 1;
const _GLIBCXX_USE_FCHMODAT: i32 = 1;
const _GLIBCXX_USE_GETTIMEOFDAY: i32 = 1;
const _GLIBCXX_USE_GET_NPROCS: i32 = 1;
const _GLIBCXX_USE_INT128: i32 = 1;
const _GLIBCXX_USE_LFS: i32 = 1;
const _GLIBCXX_USE_LONG_LONG: i32 = 1;
const _GLIBCXX_USE_LSTAT: i32 = 1;
const _GLIBCXX_USE_NANOSLEEP: i32 = 1;
const _GLIBCXX_USE_NLS: i32 = 1;
const _GLIBCXX_USE_PTHREAD_RWLOCK_T: i32 = 1;
const _GLIBCXX_USE_RANDOM_TR1: i32 = 1;
const _GLIBCXX_USE_REALPATH: i32 = 1;
const _GLIBCXX_USE_SCHED_YIELD: i32 = 1;
const _GLIBCXX_USE_SC_NPROCESSORS_ONLN: i32 = 1;
const _GLIBCXX_USE_SENDFILE: i32 = 1;
const _GLIBCXX_USE_ST_MTIM: i32 = 1;
const _GLIBCXX_USE_TMPNAM: i32 = 1;
const _GLIBCXX_USE_UTIME: i32 = 1;
#[test]
fn test_compare_int() {
    let s1 = "hello";
    let s2 = "hello";
    let s3 = "world";
    assert!(!string_equal(s1, s3));
    assert!(string_equal(s1, s2));
}
#[test]
fn test_hash_int() {
    let hash_table = hash_table_new(string_hash, string_equal);
    hash_table_free(hash_table);
}
#[test]
fn test_arraylist() {
    let mut list: *mut ListEntry = std::ptr::null_mut();
    let mut a = 0;
    let mut b = 0;
    let mut c = 0;
    unsafe {
        list_prepend(&mut list, &mut a);
        list_prepend(&mut list, &mut b);
        list_prepend(&mut list, &mut c);
        list_free(list);
    }
}
#[test]
fn test_avl_tree() {
    unsafe {
        AVL_TREE = AVLTree::new(string_compare);
        AVLTree::free(AVL_TREE);
    }
}
#[test]
fn test_binary_heap() {
    let heap = binomial_heap_new(BINOMIAL_HEAP_TYPE_MAX, string_compare);
    binomial_heap_free(heap);
}
#[test]
fn test_bloom_filter() {
    unsafe {
        let filter = bloom_filter_new(16, string_hash, 10);
        bloom_filter_free(filter);
    }
}
#[test]
fn test_queue() {
    let queue = queue_new();
    queue_free(queue);
}
#[test]
fn test_set() {
    unsafe {
        let trie = trie_new();
        trie_free(trie);
    }
}
fn main() {
    run_tests(tests);
    println!("num_assert: {}", num_assert);
}
